package com.qianli.cashmama.trade.integration.product;

import com.qianli.cashmama.product.facade.result.AppPackageInfo;
import com.qianli.cashmama.product.facade.result.ProductCategory;
import com.qianli.cashmama.trade.integration.product.dto.ProductDto;
import com.qianli.cashmama.trade.integration.product.dto.ProductRequestDTO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: sm
 * Date: 2017/7/20
 * Time: 下午5:38
 * 针对产品层的一个代理层
 */
public interface ProductIntegrationService {
    /**
     * @param productCode
     * @return
     */
    ProductDto getProductInfoByCode(String productCode);

    ProductCategory getCategoryByCode(String productCategory);
    ProductCategory getCategoryByMerchantCode(String merchantCode);

    /**
     * @param productCodes
     * @return
     */
    Map<String, ProductDto> getProductDtoMap(List<String> productCodes);

    AppPackageInfo getAppPackageInfoByPackageName(String packageName);

    ProductDto getSpecial2000Product(String productCategoryCode);

    /**
     * 获取金额最接近产品
     *
     * @param productCategoryCode
     * @param periodLength
     * @param borrowCapital
     * @return
     */
    ProductDto getSimilarProduct(String productCategoryCode, Integer periodLength, BigDecimal borrowCapital);

    /**
     * 查询产品信息，无则新增产品
     * @param request
     * @return
     */
    ProductDto getProductDetailByArrivalMoney(ProductRequestDTO request);
}
